# coding=utf8

""" 
整数反转

给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
 示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−2**31,  2**(31 − 1)]。请根据这个假设，如果反转后整数溢出那么就返回 0。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/reverse-integer
"""
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        if x == 0:
            return 0

        s = str(x)
        new_s = s
        if s[0] == '-':  # 消除 -
            new_s = s[1:]
        if new_s[-1] == '0':  # 消除 0
            new_s = new_s[:-1]  # 得到的new_s 是消除干扰后的

        if s[0] == '-':
            f_s = '-' + new_s[::-1]
        else:
            f_s = new_s[::-1]
        ans = int(f_s)
        if -2**31<ans<2**31-1:
            return ans
        else:
            return(0)

        


if __name__ == "__main__":
    s = Solution()
    ans = s.reverse(1534236469)
    print(ans)

